The present invention relates generally to the compression of the headers of data frames transported within a data transmission network, and relates particularly to a protocol-independent method and corresponding system for transmitting compressed headers in a data transmission network.
The use of data transmission networks based upon packet switching has become increasingly important for a number of applications, including transmitting data within a delimited area such as a firm, a plant, or a building through Local Area Networks (LAN), and for transmitting data over long distances using Wide Area Networks (WAN).
Therefore, there is a growing interest in compressing the transmitted data frames in order to increase the data bandwidth, particularly in compressing the frame headers. Such compression reduces overhead, which can be very important when several layers and the associated protocols (IP, TCP, UDP . . . ) are used.
Up to now, efforts have been made to compress the headers of low or medium-speed links in networks based upon the IP protocol. Such compression can improve interactive response time because echoing characters may take longer than 100-200 ms due to the time required to transmit large headers. It can also enable the use of small packets for bulk data with good line efficiency, enable the use of small packets for delay sensitive low data-rate traffic, and reduce the packet loss rate since sending fewer bits per packet results in a lower packet loss rate for a given bit-error rate.
Headers that can be compressed include TCP, UDP, IPv4 and IPv6 base and extension headers. Header compression relies on many fields being constant or changing seldom in consecutive packets belonging to the same packet stream. Fields that do not change between packets need not be transmitted at all. Fields that change often with small and/or predictable values, e.g. TCP sequence numbers, can be encoded incrementally so that the number of bits needed for these fields decreases significantly. Only fields that change often and randomly, e.g. checksums or authentication data, need to be transmitted in every header.
A template is built for each kind of protocol header wherein only variable fields to be transmitted are included. When a flow of data from a source node to a destination node is initiated, the first frame is transmitted with a full packet. Then, for the subsequent frames, only compressed headers are transmitted. Each compressed header is built with the template associated with the protocol referring to the context established by the full header of the first frame and containing incremental changes to this context.
The method of compression mentioned above presents several inherent drawbacks. First, insofar as the compression processing consists of determining the bits which have changed with respect to the first uncompressed header, such processing is slow and cannot be used with today""s high speed data transmission. Secondly, the headers used with the various protocols have specific structures which require the use of different templates which are each adapted to a specific protocol and which each require different processing.
Moreover, another drawback of present compression methods results from the appearance of more and more new protocols introduced in the networks which require implementation of new templates and processing for achieving the compression of the associated headers.
Accordingly, the main object of the invention is to achieve a new method for transmitting compressed frame headers of flows of data transmitted at high speed over a data transmission network irrespective of the protocol being used.
Another object of the invention is to achieve a new method for transmitting compressed frame headers based upon a byte to byte comparison with a reference header being the header of a frame pertaining to a flow of data irrespective of protocol.
Another object of the invention is to provide a new system enabling an ingress node to transmit compressed frame headers at high speeds over a data transmission network irrespective of the protocol being used.
Therefore, the invention relates to a method for transmitting data frames with compressed headers in a multiprotocol data transmission network comprising at least one ingress node and a plurality of switching nodes, wherein the ingress node transmits flows of data to at least one of the switching nodes used as egress nodes, each flow of data being frames that include data bytes and a header that includes information which defines protocols associated with the various layers involved in the flow of data.
This method comprises the steps of:
comparing the address field of the frame with a list of address fields corresponding to the current flows of data each time a data frame is to be transmitted by the ingress node over the network to an egress node,
selecting all the candidate headers that are associated with the flows of data having the same address field,
determining a compressed header of the frame header for each of the candidate headers based upon the position and the number of bytes that differ between the frame header and the candidate header,
selecting as reference header the one amongst the candidate headers for which the compressed header has the best compression ratio, and
transmitting a compressed data frame wherein the data bytes of the data frame received by the ingress node are preceded by a reference label associated with the reference header and a compressed header including a field defining the position and the number of consecutive bytes in the portion being compressed which are different from the corresponding bytes of the reference header, a field including the different bytes, and a field including the portion of header not being compressed.
According to another aspect, the invention relates to a system for implementing the above method comprising address lookup means in the ingress node for comparing the address field of the data frame to be transmitted by the ingress node over the network with a list of address fields, a header buffer in which are selected all the candidate headers that are associated with the flows of data having the same address field, determining means for determining a compressed header of the frame header for each of the candidate headers based upon the position and the number of bytes that differ between the frame header and the candidate header, selecting means for selecting as reference header the candidate header for which the compressed header has the best compression ratio, and transmitting means for transmitting a compressed data frame wherein the data bytes of the data frame are preceded by a reference label associated with the reference header and a compressed header including a field defining the position and the number of consecutive bytes in the portion being compressed which are different from the bytes of the reference header, a field including the different bytes, and a field including the portion of the header which is not compressed.